package com.dkm.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.dkm.entity.Module;
import com.dkm.entity.Role;
import com.dkm.util.ResultUtil;

public interface RoleService {

	//-------------------首页获取用户功能菜单--------------------------
	/**
	 * 根据角色id集合批量获取角色的模块信息集合并去重
	 * @param roleIds 角色id集合
	 * @return 去重后的模块集合
	 */
	List<Module> findRolesByRoleIds(List<String> roleIds);
	/**
	 * 获取角色的模块集合并去重
	 * @param roles 角色集合
	 * @return
	 */
	List<Module> distinctModule(List<Role> roles);
	
	/**
	 * 判断一个模块是否存在于一个集合中
	 * @param module
	 * @param modules
	 * @return
	 */
	boolean existsModule(Module module,List<Module> modules);
	//-------------------end--------------------------
	/**
	 * 多条件分页查询角色
	 * @return
	 */
	Page<Role> findAllRoles(Role role,Pageable pageable);
	
	/**
	 * 保存或修改角色
	 * @param role
	 * @return
	 */
	ResultUtil saveAndFlushRole(Role role);
	
	/**
	 * 删除角色
	 * @param role_id
	 * @return
	 */
	ResultUtil deleteRole(String role_id);
	/**
	 * 给角色设置权限
	 * @param role_id 角色id
	 * @param moduleids 模块id集合
	 * @param permissionids 权限id集合
	 * @return
	 */
	ResultUtil giveRoleSetPermission(String role_id,List<Integer> moduleids,List<String> permissionids);
}
